﻿using System;

namespace IupNET
{
    public class Context
    {
        internal IntPtr context;
        internal Context(IntPtr obj) {
            context=obj;
        }


        public static Context NativeWindow { get { return new Context(Cdc.ContextNativeWindow()); } }
        public static Context Iup { get { return new Context(Cdc.ContextIup()); } }
        public static Context Clipboard { get { return new Context(Cdc.ContextClipboard()); } }
        public static Context Printer { get { return new Context(Cdc.ContextPrinter()); } }
        public static Context Picture { get { return new Context(Cdc.ContextPicture()); } }
        public static Context ImageRGB { get { return new Context(Cdc.ContextImageRGB()); } }
        public static Context DBufferRGB { get { return new Context(Cdc.ContextDBufferRGB()); } }
        public static Context Image { get { return new Context(Cdc.ContextImage()); } }
        public static Context DBuffer { get { return new Context(Cdc.ContextDBuffer()); } }
        public static Context PDF { get { return new Context(Cdc.ContextPDF()); } }
        public static Context PS { get { return new Context(Cdc.ContextPS()); } }
        public static Context Metafile { get { return new Context(Cdc.ContextMetafile()); } }
        public static Context CGM { get { return new Context(Cdc.ContextCGM()); } }
        public static Context DGN { get { return new Context(Cdc.ContextDGN()); } }
        public static Context DXF { get { return new Context(Cdc.ContextDXF()); } }
        public static Context WMF { get { return new Context(Cdc.ContextWMF()); } }
        public static Context EMF { get { return new Context(Cdc.ContextEMF()); } }
        public static Context Debug { get { return new Context(Cdc.ContextDebug()); } }
        //public static Context GL { get { return new Context(Cdc.ContextGL()); } }

        public ContextCaps Caps
        {
            get
            {
                return (ContextCaps)Cdc.ContextCaps(context);
            }
        }

        
    }
}
